<%@ page import="com.zgl.youshuda.core.utils.OperResult" %>
<%@ page import="com.zgl.youshuda.core.utils.codenode.MksNodeTool" %>
<%@ page import="com.zgl.youshuda.core.utils.CommonUtil" %>
<%@ page import="com.zgl.youshuda.core.utils.VariablesPool" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<%@ page import="com.zgl.youshuda.core.utils.BussCustomHashMap" %>
<%@ page import="java.util.List" %>

	
<%--
	//创建人: XXX
    //创建时间: XXXX

	//以下信息用于当前程序页面在平台中自动注册激活
    <descInfo>
        <businessDesc>
            在线开发自定义测试
        </businessDesc>
        <businessType>
            632917CF7DC84A0BB96515898E0F62C4 //请从粘贴从组件类型管理中注册获得的类型编码，如：D7783010192D4F47B261BCF17EE03712
        </businessType>
        <processDesc>
            在线开发自定义测试描述当前代码页面的详细实现过程
        </processDesc>
        <inParams>
            <inParam>
                <varType>
					String
				</varType>
                <varName>
					projectName
				</varName>
                <remark>
					项目名称
				</remark>
            </inParam>
        </inParams>
        <outParams>
            {
                "msg": "查询成功", //返回当前程序页面执行是否成功初始信息到图形化程序（实际返回值可由页面程序维护）
                "code": 200, //返回指定的HTTP页面初始状态编码用于图形化程序跟踪，如200执行成功，500服务器异常，404未找到页面等（实际返回值根据页面程序执行结果自动修改）
                "data": {}, //返回当前页面程序执行结果数据到图形化编程页面，可以是String、Integer、Map等变量管理窗口中的所有变量类型之一
                "success": true //返回当前页面是否执行成功状态用于图形化程序跟踪，值只有true和false（实际返回值根据页面程序执行结果自动修改）
            }
        </outParams>
    </descInfo>
--%>

<%

    MksNodeTool mksNodeTool = new MksNodeTool(pageContext); //初始化图形编程平台工具包
    mksNodeTool.responseUtil.send(running(mksNodeTool)); //调用图形编程入口方法

%>
<%!
    /**
     * 初始化构造函数
     * running 为统一的调用方法,方法名禁止修改
     */
    private OperResult running(MksNodeTool mksNodeTool) {

        //初始化程序执行出参变量数据
        OperResult result = OperResult.getSuccessInstance();

        try {
            //获取入参变量数据
            String projectName = mksNodeTool.getParamByEn("projectName");

            //判断入参变量是否为空
            if (CommonUtil.stringIsNull(projectName)) {

                //当入参变量异常时，将错误信息返回到图形化程序
                return result.errorResult("操作异常【项目名称不能为空】", OperResult.getErrorInstance("操作异常【项目名称不能为空】"));
            }

            /**
             * 返回页面程序处理结果数据
             */
            Map<String,Object> params=new HashMap<>();
            params.put("projectName",projectName);
            List<BussCustomHashMap> projectInfos = mksNodeTool.DB.sqlSelect("SELECT\n" +
                    "	* \n" +
                    "FROM\n" +
                    "	test_project \n" +
                    "WHERE\n" +
                    "	project_name LIKE  CONCAT('%',#{projectName},'%')", params);


            //将页面程序处理数据保存至出参变量数据
            result.setData(OperResult.getSuccessInstance(projectInfos));

        } catch (Exception e) {

            //将异常日志输出到中间件控制台
            e.printStackTrace();

            //将异常日志输出到图形化程序控制台
            result.errorResult(e.getMessage());

        } finally {

            //将当前页面程序执行结果数据返回至图形化程序
            return result;

        }
    }
%>